package com.gmrz.uap.tenant;

import com.gmrz.uap.cfg.SystemConst;
import com.gmrz.uap.common.ServiceSupport;
import com.gmrz.uap.model.Tenant;
import com.gmrz.uap.util.Identities;
import com.jfinal.plugin.activerecord.Page;

import java.util.List;

public class TenantService extends ServiceSupport {
    public static final TenantService me = new TenantService();

    /**
     * 根据页面传过来的条件进行分页查询
     *
     * @param tenant 租户信息
     * @param page   页号
     * @param rows   行数
     * @param sort   排序字段
     * @param order  升序/降序
     * @return　分页结果 Page<Tenant>
     */
    public Page<Tenant> findTenantListForPaginate(Tenant tenant, int page, int rows, String sort, String order) {
        return Tenant.dao.findTenantListForPaginate(tenant, page, rows, sort, order);
    }

    /**
     * 增加租户信息
     *
     * @param tenant 租户信息
     * @return true/false
     */
    public boolean save(Tenant tenant) {
        tenant.set("tan_id", Identities.uuid2());
        return tenant.save();
    }

    /**
     * 修改租户信息
     *
     * @param tenant 租户信息
     * @return true/false
     */
    public boolean update(Tenant tenant) {
        return tenant.update();
    }

    /**
     * 根据参数删除租户信息，ID可以是多个，中间使用逗号隔开
     *
     * @param ids ID集合
     * @return true/false
     */
    public boolean remove(String ids) {
        String[] idArr = ids.split(SystemConst._DEFAULT_SEPARATOR_COMMA);


        for (String id : idArr) {
            flag = Tenant.dao.updateTenantById(2, id);
        }
        return flag;
    }

    public boolean exist(String tenantId) {
        Tenant tenant = Tenant.dao.getByTenantId(tenantId);
        return null == tenant;
    }


    /**
     * 获取所有租户信息
     *
     * @return
     */
    public List<Tenant> getAllTenants() {
        return Tenant.dao.getAllTenants();
    }

    public List<Tenant> getAllTenants(String tenantIds) {
        return Tenant.dao.getAllTenants(tenantIds);
    }

    /**
     * 获取渠道列表第一个渠道
     *
     * @return
     */
    public Tenant getFirstTenant() {
        return Tenant.dao.findFirst("select * from t_tenant");
    }

    public Tenant getByTenantId(String tenantId) {
        return Tenant.dao.getByTenantId(tenantId);
    }

    public Tenant getByEName(String configEName) {
        return Tenant.dao.getByEName(configEName);
    }


    public List<Tenant> getByEName(String[] configENames) {
        return Tenant.dao.getByEName(configENames);
    }

}
